草庐IT

redis 与 hazelcast

全部标签

java - Hazelcast 记录 70% 阈值消息而不向 map 添加任何内容

我在2节点集群中使用hazelcast以下是我的配置:hazelcastinstanceSILENT${cluster.hzmembers}192.168.1.*我只是使用映射来检查分区,因此我只能在集群中运行一个批处理实例:hz.getPartitionService().getPartition("cluster.map").getOwner().localMember()但是在日志中我一次又一次地看到这样的消息[cluster]memory.used=1.8G,memory.free=583.9M,memory.total=2.4G,memory.max=2.4G,memory.

java - Hazelcast:合并两个 hazelcast 实例

假设我们有两个hazelcast实例:HazelcastInstancefirstInstance=Hazelcast.newHazelcastInstance(newConfig());HazelcastInstancesecondInstance=Hazelcast.newHazelcastInstance(newConfig());//AddentriestofirstInstance//AddentriestosecondInstance现在我试图从firstInstance中删除所有内容,然后添加所有内容secondInstance到firstInstance。有什么办法可以

java - 可以在 Hazelcast 中通过键而不是值进行查询(使用谓词)?

在Hazelcast中,是否可以根据键的属性而不是值来查询IMap?所有Hazelcast示例都显示按值查询。例如,对于具有字符串键的员工映射:IMapemployees;典型的搜索谓词然后根据员工属性(姓名、薪水等)进行搜索。但是我的案例使用了更复杂的键,例如:IMapmyData;因此,如果DataAttributes具有以下字段:classDataAttributes{StringtheDescription;DatetheStartTime;publicStringgetDescription(){returntheDescription;}//etc....}我想编写一个可以

java - Redis token 存储

我想在集群环境中部署我的RESTAPI。为此,我需要将我的OAuth2.0token存储在共享token存储中。目前我正在使用SpringSecurity的InMemoryTokenStore,它不能在多节点集群上共享。我打算使用Redis存储token。我发现最新版本的Spring-SecurityOAuth即2.8.0也提供了RedisTokenStore。我对此有一些疑问:在现有的spring-securityxml配置中使用RedisTokenStore需要进行哪些更改。目前我正在使用InMemoryTokenStore。如何使RedisTokenStore可与集群中的所有节点

java - Hazelcast 队列信息

我目前正在使用hazelcast编写分布式系统。我有几个关于使用hazelcast实现的队列的问题。处理队列中数据的最佳方法是什么?我目前在每个“节点”上都有线程读取阻塞队列处理数据。这是正确的还是有一些我不知道的类负责处理这个问题,比如JMS或messageListener?我看到有一个生存时间设置,一旦过期就会从队列中删除条目。我的问题是......有没有办法检测从队列中删除过期项目?我知道有Listener但这无济于事,因为它在所有“节点”上触发,而不仅仅是一个。我正在寻找一种为每条过期消息执行代码的方法(类似于死信队列)。如有任何意见或建议,我们将不胜感激。谢谢

Redis集群和Lettuce 配置

Redis官方推荐的java客户端三大客户端Jedis、lettuce、Redissonlettuce、jedis、Redisson三者比较:jedis提供全面的指令支持,在多线程环境下是非线程安全的,性能比较差;lettuce的连接是基于Netty的,连接实例可以在多个线程间并发访问;Jedis和lettuce是比较纯粹的Redis客户端,几乎没提供什么高级功能;Redisson实现了分布式和可扩展的Java数据结构,和Jedis相比,功能较为简单,不支持字符串操作,不支持排序、事务、管道、分区等Redis特性。Redisson的宗旨是促进使用者对Redis的关注分离,从而让使用者能够将精力

java - Hazelcast 自动发现如何工作?

我想知道Hazelcast自动发现的工作原理。节点如何找到网络中的其他节点?他们如何知道节点何时死亡? 最佳答案 有3种不同的发现形式:多播。所以我们在网络上四处喊叫,试图找到其他成员tcp/ip:我们需要一些知名的成员。如果这些知名成员中的一个或多个在线,则其他成员可以形成一个集群。aws:我们只需登录aws,读取给定区域内的所有实例,应用一些过滤,剩下的就是众所周知的成员。从那时起,我们依赖于基于tcp/ip的集群。简而言之,这就是自动发现的工作原理。检测节点故障是根据心跳来完成的。因此,我们每x秒向集群中的所有成员发送一条消息

java - 性能下降从 Hazelcast 2.5 升级到 3+

由于Hazelcast2.5中的一个已知(已修复)错误,我们决定将其作为我们项目的下一个升级候选。但在加入最新版本(3.2.2)后,我们的性能很糟糕。我们使用Hazelcast的方式:两个节点多个IMap实例(总共约7个map)两个节点更新map大量阅读map启用近缓存以加快读取速度使用Hazelcast2.5我们获得了出色的性能,而不是使用map.values(),我们提供了所有包含的键的列表map.getAll(containedKeys)。我们通过将EntryListener添加到将containedKeys存储在并发集中的映射来跟踪containedKeys的方式。这是由一位同

java - Hazelcast 线程阻止 TomEE 停止

上下文我们想使用Hazelcast作为我们在TomEE中的JCache实现。由于我们不需要疯狂的性能,目前,我们希望将Hazelcast节点作为我们应用程序的一部分运行。我们使用Hazelcast3.7和TomEE7.0.1。问题当停止TomEE时,它会提示警告-Web应用程序[APPLICATION_NAME]似乎已经启动了一个名为[SOMENAME]的线程,但未能停止它。这很可能会造成内存泄漏。几次,VM将不会正常停止,而是继续运行。解决方法显然是在进程看起来空闲时立即终止进程。不用说,这让我们的开发人员和开发运营人员发疯了。单独的Hazelcast节点为了排除在TomEE中运行的

java - 重新连接 Hazelcast 客户端

我们正在使用JavaHazelcast客户端连接到外部Hazelcast集群(版本3.7.2),但如果集群出现故障,则在重新连接时会遇到问题。我们正在使用HazelcastClient.newHazelcastClient创建我们的客户端。一旦我们这样做,我们将保留HazelcastInstance的副本并使用它与Hazelcast集群(getMap、getSet等)进行交互。).我们还将我们从HazelcastInstance获得的map、集合等存储在可能长期存在的对象中。在快乐的道路上一切正常。但是,如果集群曾经关闭并重新启动,我们在尝试访问这些在集群关闭之前创建的对象时会得到Ha